home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SPACE 1
/
SPACE - Library 1 - Volume 1.iso
/
program
/
441
/
dlibs12
/
lsearch.c
< prev
next >
Wrap
C/C++ Source or Header
|
1990-11-23
|
636b
|
36 lines
#include <stddef.h>
char *lfind(key, base, num, size, cmp)
register char *key, *base;
unsigned int *num;
register unsigned int size;
register int (*cmp)();
{
register int n = *num;
while(n--)
{
if((*cmp)(base, key) == 0)
return(base);
base += size;
}
return(NULL);
}
char *lsearch(key, base, num, size, cmp)
char *key, *base;
register unsigned int *num;
register unsigned int size;
int (*cmp)();
{
register char *p;
char *memcpy();
if((p = lfind(key, base, num, size, cmp)) == NULL)
{
p = memcpy((base + (size * (*num))), key, size);
++(*num);
}
return(p);
}